NLP社招面经分享

您所在的位置:网站首页 layer normalization作用 NLP社招面经分享

NLP社招面经分享

2023-03-13 20:32| 来源: 网络整理| 查看: 265

NLP方向,跳槽之前在一家小厂,历经1个多月的刷题复习+1个多月的面试,社招也基本结束了,记录一下其中的面试题,希望对大家有用~

提示:想看面经的同学直接拉到分割线下面就行

背景介绍

知乎上有个问题是"https://www.zhihu.com/question/265048690/answer/1995636426">有哪些行为堪比「1949年加入国民党」? 那么我觉得我选择在2022年跳槽也算是一种吧[捂脸]。

2022年大环境不太好,整体hc(head count)比2021年少了很多,回想2021年,各个候选人所到之处,各家大厂中厂竭诚欢迎,hc充足,大家挑花了眼,那种生机勃勃,万物竞发的景象犹在眼前,没想到短短一年之后,居然情况急转直下

情况介绍:我主要做nlp,也涉及到多模态和强化学习的东西。2022年的大环境比较差,能投的公司不是很多,比如腾讯,主要还是高级别的,所以腾讯我就没投(说得好像我投了能面过一样...)

面了的公司包括抖音,蚂蚁,滴滴,小红书,寒武纪,还有一些国企和研究院,比如北京智源人工智能研究院,某国内金融公司,其他的用来练手也面了一些,比如蔚来汽车,吉利汽车,华人运通,boss直拒,还有一些AI制药公司,比如碳硅智慧,拿到了其中大部分offer,当然我自己也遇到一些拉胯情况,比如小红书二面挂[笑哭]

面试总结

这一个多月面下来,总体面试考察主要包括下面几个模块:代码题+项目细节+八股文+场景题,其中:

1,代码题,写不出来大概率还是要跪的,我觉得刷200道左右一般就问题不大。200道争取达到肌肉记忆,就是给出你题目你要10s之内给出思路,哪怕没有bug free,但是一定要保证有思路。有一点要注意,200道高频题刷2遍,好过400道题目刷一遍,重点还是刷高频题。另外推荐的刷题地址,里面可以选择公司和标签:

2,项目细节我的感触最深,有些面试官会问的很细,在不断的试探我们的边界,所以项目细节还是要准备到位。通过这段时间的面试我反而对项目的理解更深刻,不知道这算不算面试给我带来的收益?这里有一个提高通过率的小trick:可以和1个或者多个靠谱小伙伴一起,让大家看对方的简历,假设自己是面试官,然后针对项目出一些题目,这样一来可以查漏补缺,有点co-teaching的感觉,这个方法还是挺管用的,大家可以试试~

3,八股文的话主要围绕项目出题,比如你做了强化学习的东西,那么常见的reinforce,actor-critic,on policy和off policy的区别,一定要掌握。比如你项目用到了swin-transformer,那么swin-transformer和传统的transformer的区别是什么,patch merging怎么做的,要清楚。

4,场景题可能是大厂喜欢考察,小厂不一定问。

面经

废话不多说,面经奉上:

小红书:小红书一面: 1,聊项目 2,你们的训练集和验证集,测试集分别是多少?怎么来的? 3,宏平均和微平均是用来干什么的?是如何计算的?他俩的主要区别? 4,知识蒸馏为什么有效,详细介绍一下知识蒸馏? 5,强化学习适合在哪些场景使用? 6,智力题:如何用rand6实现rand10 代码题: lc 76,最小覆盖子串

小红书二面: 1,聊项目 2,layer normalization的好处是?和batch normalization的区别?你有没有看过有的transformer也用bn? 3,BERT的主要改进,包括结构的改进,预训练方式的改进,都说一下?(这里能说的很多,挑自己熟悉的说就行) 4,Reformer中,LSH(局部敏感哈希)是如何实现的? 5,CRF和HMM的区别,哪个假设更强?他们的解码问题用什么算法? 6,lstm参数量计算,给出emb_size和hidden_size,求lstm参数量 7,cv中有哪些常见的数据增强方式 8,简单实现一个layer normalization类,只需要实现__init__和forward就行

总结:这一面压力不小,而且面试官从一开始就多次打断我的说话,说我目前做的项目没意义,而且表情好像不耐烦,不知道是不是晚上面试耽误他下班了。这是我体验最差的一场面试,当时我有点想和他怼起来,但是想想还是忍住了,最后挂了也是意料之中

抖音抖音一面 1,聊项目 2,AUC的两种公式是?你能证明这两种等价的吗? 3,BERT-CRF中,为什么要加CRF?好处是? 4,self-attention为什么要用QKV三个矩阵,不用有什么问题?有没有哪个模型的Q和K矩阵是一样的? 5,reinforce属于on-policy还是off-policy?为什么? 6,reinforce带上baseline好处是?reinforce的loss写一下? 7,策略梯度会推导吗?简单写一下? 代码题(代码题一般别着急写,先跟面试官说下思路,确定了再写): 1,lc 46,全排列(lc表示leetcode,下同) 2,lc 73,矩阵置0

总结:这一面我以为面试官只会问多模态,不会问强化学习,没想到这个面试官好厉害,强化学习也很懂,真的很强啊,我比较好奇,他们哪里来那么多时间看那么多领域的东西

抖音二面 1,介绍项目 2,知识蒸馏有哪几种?你觉得哪种效果最好? 3,nlp的数据增强方法,主要有哪几种?每一种举个例子? 4,分类的损失函数为什么是交叉熵而不是mse? 5,BERT对输入文本的长度有什么限制,为什么要限制长度呢? 6,BigBird里面有哪几种注意力机制?相比原始transformer的self-attention的优势? 7,场景题:如何根据拼多多的商品数量,估计淘宝的商品数量? 8,给出emb_size, max_len, vocab_size, ff_inner_size,num_heads, 12层,求BERT参数量 代码题: n皇后问题

总结:给我来了一道hard题目,我以为我要挂了,结果没几分钟HR告诉我过了

抖音三面 1,简单聊项目 2,CRF和HMM区别?CRF为什么比HMM效果好? 3,如果BERT词表很大,比如vocab_size达到几百万,怎么办? 4,快速手写一些transformer的mha(多头注意力),伪代码意思一下就行 5,为什么对比学习中,temperature很小,而知识蒸馏的temperature比较大? 6,你觉得在抖音买东西,和淘宝、拼多多他们的区别是?(我没在抖音买过,就只能现场编。。) 7,你最近看到过哪些paper?简单介绍下? 8,你觉得自己有那些优缺点?平时喜欢怎么缓解压力?

总结:这一面的面试官很和蔼,一直笑呵呵的,后面就是闲聊了,体验很不错

蚂蚁蚂蚁一面: 1,聊项目 2,多模态的预训练方式你知道哪些,知道的都说一下? 3,coca和CLIP的区别?为什么coca效果比CLIP好? 4,CLIP预训练的时候,batch size达到了32768,他用到了哪些trick去提高batch size? 5,CRF的loss写一下,CRF打破了HMM的哪个假设? 6,对比学习为什么有效?cv和nlp的经典的对比学习的模型说一下? 7,多头注意力的头的数量,对参数量有影响吗?为什么? 8,transformer里面为什么要加add&norm模块?好处是什么? 代码: 1,简单实现一个transformer-encoder-layer,要求pre-norm和post-norm可选 2,编辑距离

这和我想的蚂蚁的面试不太一样,我以为蚂蚁的代码题会容易一些呢,之前看到的面经,蚂蚁的代码题一般以medium为主

蚂蚁二面: 1,聊项目 2,衡量对比学习的两个指标是哪些?公式? 3,transformer相比lstm的优势有哪些? 4,distillBERT, tinyBERT, mobileBERT和miniLM,他们是如何对BERT蒸馏的? 5,ViT是如何对图片进行处理的?为什么要加position embedding? 6,说到position embedding,transformer一定要加position embedding么?有些模型没有加pe,你知道吗? 7,beam search的思想,伪代码实现 代码题: lc 33,排序数组的搜索

蚂蚁三面: 1,聊项目 2,多头注意力,给出序列长度n和hidden_size,那么多头注意力的时间复杂度是多少? 3,ALBert相比BERT的改进,说一下? 4,BERT预训练有哪些问题?后面的模型怎么改进的?重点说说ELECTRA和MacBERT 5,有没有了解过,有的模型用生成的方式做信息抽取? 6,讲一下UIE模型是怎么做信息抽取的?其中的SSI和SEL说一下? 7,你老家哪里的?有哪些兴趣爱好? 8,你觉得自己优缺点有哪些? 9,我们走个流程,来一道代码题把,lc 207,课程表

总结:聊天聊了一会,最后还让我写代码题我是没想到的。。

寒武纪寒武纪一面: 1,聊项目 2,你知道哪些对比学习的方法?cv和nlp都说一下 3,simCLR和moco区别?moco里面加k_encoder的作用? 4,moco v2, moco v3相对moco的改进有哪些? 5,resnet为什么效果好?残差连接的好处? 6,pytorch中,dataloader dataset和sampler的关系? 7,动态图和静态图区别? 8,蒸馏,量化和剪枝的原理大致说一下?

寒武纪二面: 1,聊项目 2,简单介绍一些CRF的好处,CRF条件概率的公式写一下 3,transformer相比lstm的优势有哪些? 4,transformer优点那么多,是不是可以淘汰lstm了,以后全用transformer? 5,swin-transformer和ViT的区别?数据量少的时候,他们和ResNet比,哪个效果好?为什么? 6,寒武纪做什么你知道吗?分布式训练用过吗? 7,pytorch的ddp和dp区别是什么? 8,你对混合精度的了解多吗?说一下混合精度的原理?某金融公司一面: 1,聊项目 2,beam search缺点? 3,如何提高文本生成的多样性?sampling有哪几种,topk sampling的缺点是? 4,维特比算法的思路?维特比算法和beam search的区别?这两个,哪个是全局最优? 5,维特比算法和beam search算法,时间复杂度分别是? 6,知识蒸馏中,对hidden蒸馏为什么用mse,而不是KL散度? 7,tiny-BERT是如何对BERT进行蒸馏的?tiny-BERT是单阶段蒸馏还是双阶段蒸馏?用到的数据增强怎么做的? 8,数据清洗有哪些方法,co-teaching是怎么做的?co-teaching的缺点? 9,平时看的paper多不多?一周几篇?主要是哪些渠道? 代码题: lc 300: 最长递增子序列

二面: 1,聊项目 2,困惑度的定义?公式写一下?和交叉熵的关系是? 3,困惑度越大越好还是越小越好?困惑度最小是多少? 4,什么是文本生成的曝光偏差问题?怎么解决? 5,编程题:代码实现AUC的计算

总结:这个二面体验也不错,面试官手机响了还跟我说了声抱歉,很有礼貌

boss直聘一面: 1,transformer的结构说一下 2,transformer有哪些缺点? 3,为什么transformer的position embedding采用sin/cos形式,而BERT采用了可训练的positional embedding? 4,加上crf的好处?crf的loss写一下? 5,真正训练的时候,crf的参数有哪些?crf的emission matrix哪来的? 6,为什么想来北京?

二面: 1,聊项目 2,batch normalization的beta和gama,会有训练和测试不一致的问题,怎么解决的? 3,layer normalization的beta和gama,有训练和测试不一致的问题吗? 4,假设训练时,batch的数据的shape为(N,C,H,W),那么bn的beta和gama这两个tensor,shape是什么? 5,为什么cv的数据可以用bn,但是文本数据用bn效果就很差? 6,除了bn和ln,你还知道哪些normalization? 7,RoBERTa,ALBERT对BERT做了哪些改进?你觉得这些模型的最终效果提升,都是模型结构改进的功劳吗? 8,场景题:给出很多格式不同的简历,如何抽取其中的候选人的学校和公司?面试感受

1,高密度的面试挺累的,所以我建议分阶段面试:前期面试一些练手的小公司,同时这些小公司也不能太水,不然达不到练手的效果,然后比如隔一周时间稍微总结下,接下来正式面试自己的dream company

2,结对跳槽是个不错的选择,这次跳槽我和朋友一起跳,相互给对方出题,相互吐槽自己遇到的奇葩面试官,比自己一个人跳槽有趣的多。这次面试的复习过程也得到了很多大佬的帮助,比如 @Notic @顾逸 @还我漂漂拳 @马东什么 给了我很多指点和建议,没有他们的帮助我估计面试通过率下降一半,所以内心真的特别感谢~

3,针对有些大厂,流程可能有些长,建议速战速决(比如约面试时间,如果准备好了,那面试安排的越早越好),不然拖得太久了可能被流程里面更match或者更优秀的候选人挤掉

如何对待面经:

现在市面上面经很多,我的感受是要有的放矢,避免对面经的过拟合,比如我之前也看了很多学长学姐的面经,里面很多传统机器学习的问题,比如GBDT,xgboost之类的,我这次面试,也花了不少时间准备了一些相关内容,然而面试的时候,GBDT,xgboost之类的压根就没遇到,白白准备了半天。

究其原因,一个是因为他们的简历有相关内容,所以面试官会问,第二个原因也可能是大家遇到的公司类型不一样,有的喜欢顺带考察一些机器学习的内容。所以大家如果时间紧张,那看面经的时候,发现面经里面很多问题不会,不用太过担心,把项目相关的基础知识+常见八股搞懂就可以了。当然了如果你还是不放心,或者你要面试的部门可能考察,那可以花几天准备下。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3